//
// Created by yunnan xu on 2021/2/23.
//

#ifndef ANDROIDGRAPHICSDEMOS_PARTICLESYSTEM_H
#define ANDROIDGRAPHICSDEMOS_PARTICLESYSTEM_H

#include <vector>
#include <memory>
#include "GLESUtils.h"

template<GraphicsAPI api> class RenderItemInstanced;

class ParticleSystem {

public:

    ParticleSystem();
    void Update(double elapsed_time, double tot_time);

    void AddParticle(std::shared_ptr<RenderItemInstanced<GraphicsAPI::GLESv3>> particle);

protected:
    std::vector<std::shared_ptr<RenderItemInstanced<GraphicsAPI::GLESv3>>> particle_list;
};


#endif //ANDROIDGRAPHICSDEMOS_PARTICLESYSTEM_H
